import shutil  # 导入用于文件操作的模块
import os  # 导入用于操作系统功能的模块


def process(parent_folder):
    # 列出父文件夹中的所有条目
    entries_parent = os.listdir(parent_folder)
    panorama_folder_set = []  # 用于存储所有创建的拼接图文件夹路径

    # 遍历当前文件夹中的所有子文件
    for dir in entries_parent:
        # 如果条目是文件，则跳过
        if os.path.isfile(os.path.join(parent_folder, dir)):
            continue

        # 获取子文件夹的完整路径
        child_dir_path = os.path.join(parent_folder, dir)

        # 创建 "拼接图" 文件夹的路径
        panorama_folder_path = os.path.join(child_dir_path, "拼接图")
        panorama_folder_set.append(panorama_folder_path)  # 将拼接图文件夹路径添加到列表中

        # 如果拼接图文件夹不存在，则创建它
        if not os.path.exists(panorama_folder_path):
            os.makedirs(panorama_folder_path)

        # 列出子文件夹中的所有条目
        entries_child = os.listdir(child_dir_path)

        # 遍历子文件夹中的所有条目
        for file in entries_child:
            # 如果条目是文件夹，则跳过
            if os.path.isdir(os.path.join(child_dir_path, file)):
                continue

            # 检查文件是否以 ".jpg" 结尾（不区分大小写）
            if file.lower().endswith(".jpg"):
                file_path = os.path.join(child_dir_path, file)  # 获取文件的完整路径
                try:
                    # 如果文件名包含 "全景.jpg"，则将其移动到拼接图文件夹中
                    if "全景.jpg" in file.lower():
                        new_path = os.path.join(panorama_folder_path, file)  # 新文件路径
                        shutil.move(file_path, new_path)  # 移动文件
                        print(f"Moved: {file_path} -> {new_path}")  # 打印移动信息
                except Exception as e:
                    # 捕获并打印处理文件时的错误
                    print(f"Error processing file {file_path}: {e}")

    return panorama_folder_set  # 返回所有创建的拼接图文件夹路径